// 清空表格项目内容
export const resetTableItemContent = function(tableJson) {
  // 清空项目内容方法
  const resetItemContent = (item) => {
    item['val'] = ''
    item['dataSetCode'] = ''
    item['dataSetName'] = ''
    item['key'] = ''
    item['label'] = ''
    item['resultType'] = ''
    item['tag'] = ''
    item['displayOrder'] = null
    return item
  }
  if (!tableJson) {
    return tableJson
  }
  // 获取表格配置对象
  const tableJsonObj = JSON.parse(tableJson)
  // 获取数据对象
  const data = tableJsonObj.data
  // 表格数据
  const tdData = data.tdData || []
  // 重置表格中的项目数据
  tdData.forEach((row, rowIndex) => {
    row.forEach((item, colIndex) => {
      // 如果包含内容(由左侧项目拖拽生成的)
      if (item.dataSetCode) {
        // 重置项目内容
        item = resetItemContent(item)
        // 赋值
        tdData[rowIndex][colIndex] = item
      }
    })
  })
  // 表头数据
  const thData = data.thData || []
  thData.forEach((row, rowIndex) => {
    row.forEach((item, colIndex) => {
      // 如果包含内容(由左侧项目拖拽生成的)
      if (item.dataSetCode) {
        // 重置项目内容
        item = resetItemContent(item)
        // 赋值
        tdData[rowIndex][colIndex] = item
      }
    })
  })
  tableJsonObj.data.tdData = tdData
  tableJsonObj.data.thData = thData
  // 返回处理后的json
  return JSON.stringify(tableJsonObj)
}

/**
 * 设置tableJson的扩展属性值extendOptions (扩展属性值仅用作参数传递,不作存储以及回显)
 * @param tableJson
 * @param key
 * @param value
 * @returns {string|*}
 */
export const setTableJsonExtendOptions = (tableJson, key, value) => {
  if (!tableJson) {
    return tableJson
  }
  // 转换js对象
  const tableJsonObj = JSON.parse(tableJson)
  // 获取表格扩展属性对象
  const extendOptions = tableJsonObj.extendOptions || {}
  // 设置键值对
  extendOptions[key] = value
  // 重设到js对象中
  tableJsonObj.extendOptions = extendOptions
  // 重新转换json字符串
  tableJson = JSON.stringify(tableJsonObj)
  return tableJson
}
